name: {{app.name}}
options:
  bundleIdPrefix: {{reverse-domain app.domain}}
  deploymentTarget:
    iOS: {{apple.ios-version}}
fileGroups: [{{join file-groups}}]
configs:
  debug: debug
  release: release
settingGroups:
  app:
    base:
      PRODUCT_NAME: {{app.name}}
      PRODUCT_BUNDLE_IDENTIFIER: {{reverse-domain app.domain}}.{{app.name}}
      DEVELOPMENT_TEAM: {{apple.development-team}}
targetTemplates:
  app:
    type: application
    sources:
      - path: Sources
    scheme:
      environmentVariables:
        RUST_BACKTRACE: full
        RUST_LOG: info
    settings:
      groups: [app]
targets:
  {{app.name}}_iOS:
    type: application
    platform: iOS
    sources:
      - path: Sources
      - path: {{app.asset-dir}}
        buildPhase: resources
        type: folder
      {{~#each asset-catalogs}}
      - {{prefix-path this}}{{/each}}
      {{~#each ios-additional-targets}}
      - path: {{prefix-path this}}{{/each}}
    info:
      path: {{app.name}}_iOS/Info.plist
      properties:
        LSRequiresIPhoneOS: true
        UILaunchStoryboardName: LaunchScreen
        UIRequiredDeviceCapabilities: [arm64, metal]
        UISupportedInterfaceOrientations:
          - UIInterfaceOrientationPortrait
          - UIInterfaceOrientationLandscapeLeft
          - UIInterfaceOrientationLandscapeRight
        UISupportedInterfaceOrientations~ipad:
          - UIInterfaceOrientationPortrait
          - UIInterfaceOrientationPortraitUpsideDown
          - UIInterfaceOrientationLandscapeLeft
          - UIInterfaceOrientationLandscapeRight
        CFBundleShortVersionString: {{apple.bundle-version-short}}
        CFBundleVersion: {{apple.bundle-version}}
        {{~#each apple.plist-pairs}}
        {{this.key}}: {{this.value}}{{/each}}
    scheme:
      environmentVariables:
        RUST_BACKTRACE: full
        RUST_LOG: info
      {{~#if ios-command-line-arguments}}
      commandLineArguments:
      {{~#each ios-command-line-arguments}}
        "{{this}}": true
      {{/each}}{{~/if}}
    settings:
      base:
        ENABLE_BITCODE: false
        ARCHS: [{{join ios-valid-archs}}]
        VALID_ARCHS: {{~#each ios-valid-archs}} {{this}} {{/each}}
        LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) "{{prefix-path "target/x86_64-apple-ios/$(CONFIGURATION)"}}"
        LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) "{{prefix-path "target/aarch64-apple-ios/$(CONFIGURATION)"}}"
        LIBRARY_SEARCH_PATHS[arch=arm64-sim]: $(inherited) "{{prefix-path "target/aarch64-apple-ios-sim/$(CONFIGURATION)"}}"
        ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true
      groups: [app]
    dependencies:
      - target: lib_{{app.name}}_iOS
        embed: false
        link: false
      - framework: lib{{snake-case app.name}}.a
        embed: false
      {{~#each ios-vendor-frameworks}}
      - framework: {{prefix-path this}}{{/each}}
      {{~#each ios-vendor-sdks}}
      - sdk: {{prefix-path this}}{{/each}}
      - sdk: CoreGraphics.framework
      - sdk: Metal.framework
      - sdk: MetalKit.framework
      - sdk: QuartzCore.framework
      - sdk: Security.framework
      - sdk: UIKit.framework
      {{~#each ios-frameworks}}
      - sdk: {{this}}.framework{{/each}}
      - sdk: WebKit.framework
    {{~#if ios-pre-build-scripts}}
    preBuildScripts:
      {{~#each ios-pre-build-scripts}}{{#if this.path}}
      - path {{this.path}}{{/if}}{{#if this.script}}
      - script: {{this.script}}{{/if}}{{#if this.name}}
        name: {{this.name}}{{/if}}{{#if this.input-files}}
        inputFiles: {{~#each this.input-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.output-files}}
        outputFiles: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.input-file-lists}}
        inputFileLists: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.output-file-lists}}
        outputFileLists: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.shell}}
        shell: {{this.shell}}{{/if}}{{#if this.show-env-vars}}
        showEnvVars: {{this.show_env_vars}}{{/if}}{{#if this.run-only-when-installing}}
        runOnlyWhenInstalling: {{this.run-only-when-installing}}{{/if}}{{#if this.based-on-dependency-analysis}}
        basedOnDependencyAnalysis: {{this.based-on-dependency-analysis}}{{/if}}{{#if this.discovered-dependency-file}}
        discoveredDependencyFile: {{this.discovered-dependency-file}}{{/if}}
      {{~/each~}}
    {{~/if~}}
    {{~#if ios-post-compile-scripts}}
    postCompileScripts:
      {{~#each ios-post-compile-scripts}}{{#if this.path}}
      - path {{this.path}}{{/if}}{{#if this.script}}
      - script: {{this.script}}{{/if}}{{#if this.name}}
        name: {{this.name}}{{/if}}{{#if this.input-files}}
        inputFiles: {{~#each this.input-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.output-files}}
        outputFiles: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.input-file-lists}}
        inputFileLists: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.output-file-lists}}
        outputFileLists: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.shell}}
        shell: {{this.shell}}{{/if}}{{#if this.show-env-vars}}
        showEnvVars: {{this.show_env_vars}}{{/if}}{{#if this.run-only-when-installing}}
        runOnlyWhenInstalling: {{this.run-only-when-installing}}{{/if}}{{#if this.based-on-dependency-analysis}}
        basedOnDependencyAnalysis: {{this.based-on-dependency-analysis}}{{/if}}{{#if this.discovered-dependency-file}}
        discoveredDependencyFile: {{this.discovered-dependency-file}}{{/if}}
      {{~/each~}}
    {{~/if~}}
    {{~#if ios-post-build-scripts}}
    postBuildScripts:
      {{~#each ios-post-build-scripts}}{{#if this.path}}
      - path {{this.path}}{{/if}}{{#if this.script}}
      - script: {{this.script}}{{/if}}{{#if this.name}}
        name: {{this.name}}{{/if}}{{#if this.input-files}}
        inputFiles: {{~#each this.input-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.output-files}}
        outputFiles: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.input-file-lists}}
        inputFileLists: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.output-file-lists}}
        outputFileLists: {{~#each this.output-files}}
          - {{this}}{{/each}}{{/if}}{{#if this.shell}}
        shell: {{this.shell}}{{/if}}{{#if this.show-env-vars}}
        showEnvVars: {{this.show_env_vars}}{{/if}}{{#if this.run-only-when-installing}}
        runOnlyWhenInstalling: {{this.run-only-when-installing}}{{/if}}{{#if this.based-on-dependency-analysis}}
        basedOnDependencyAnalysis: {{this.based-on-dependency-analysis}}{{/if}}{{#if this.discovered-dependency-file}}
        discoveredDependencyFile: {{this.discovered-dependency-file}}{{/if}}
      {{~/each~}}
    {{~/if}}

  lib_{{app.name}}_iOS:
    type: ""
    platform: iOS
    settings:
      ENABLE_BITCODE: false
      ARCHS: [{{join ios-valid-archs}}]
      VALID_ARCHS: {{~#each ios-valid-archs}} {{this}} {{/each}}
    legacy:
      toolPath: {{ tauri-binary }}
      arguments: {{ tauri-binary-args-str }} -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}
      passSettings: false # prevents evil linker errors
      workingDirectory: $(SRCROOT)/../..
